using System.Collections.Generic;

namespace SharePointUtilitiesForDevelopers.Gateway
{
    /// <summary>
    /// Defines the interface for a gateway to the SharePoint views service.
    /// </summary>
    public interface ISharePointViewsServiceGateway
    {
        /// <summary>
        /// Gets list views.
        /// </summary>
        /// <param name="siteUrl">The site URL.</param>
        /// <param name="listName">Name of the list.</param>
        /// <returns>A list of views.</returns>
        IEnumerable<SharePointListView> GetListViews(
            string siteUrl,
            string listName);

        /// <summary>
        /// Gets a list view.
        /// </summary>
        /// <param name="siteUrl">The site URL.</param>
        /// <param name="listName">Name of the list.</param>
        /// <param name="viewName">Name of the view.</param>
        /// <returns>A view.</returns>
        SharePointListView GetListView(
            string siteUrl,
            string listName,
            string viewName);
    }
}